﻿#region Header

/*
Remote views based on linq
By

Pascal Hauser 
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

and

Raphael Gfeller
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

*/

#endregion

#region Usings

using System;
using System.Linq.Expressions;
using InterLinq.Types;

#endregion

namespace InterLinq.Base {
	/// <summary>
	/// Description of the class
	/// </summary>
	public interface ISerializableExpression {
		int HashCode { get; set; }

		ExpressionType NodeType { get; set; }

		InterLinqType Type { get; set; }

		/// <summary>
		/// Extension Method for <see cref="IEnumerable"/>.
		/// Returns the result of the executed <see cref="SerializableExpression"/>.
		/// </summary>
		/// <param name="exp">Extended class instance.</param>
		/// <param name="linqHandler"><see cref="IQueryHandler"/>.</param>
		/// <returns>Returns the result of the executed <see cref="SerializableExpression"/>.</returns>
		Object Convert(IQueryHandler queryHandler);
	}
}